package com.synjones.pay.bank.api;

import com.synjones.pay.model.common.ResponseBean;
import com.synjones.pay.model.context.IPayContext;
import java.util.Map;

/**
 * bank interface
 *
 * @author zhzy
 */
public interface IBank {

    /**
     * 组建发送数据
     *
     * @param ctx
     * @return
     */
    Map<String, String> buildSendData(IPayContext ctx);

    /**
     * 解析返回数据 并组装bean，以便更新交易结果
     *
     * @param resMap
     * @return
     */
    ResponseBean resolveRespData(Map<String, String> resMap);

    /**
     * 验证返回数据的签名
     *
     * @param resMap
     * @return
     */
    boolean verifyRespSign(Map<String, String> resMap);

}
